package decorator_pattern;

/**
 * 装饰器类（抽象装饰者）
 *
 * @author wangzg13
 * @since 2022/7/30
 */
public abstract class Decorator extends Component{

    // 被装饰对象
    private Component component;

    public Decorator(Component component){
        this.component = component;
    }

    /**
     * 重写最初抽象的被装饰的方法（区别于方法的最初实现类 ConcreteComponent）
     * 保持装饰器抽象类的单一职责，不做装饰实现，只做装饰对象的声明
     */
    @Override
    public void operate() {
        this.component.operate();
    }
}
